package cn.txun.csmall.product.service;

import cn.txun.csmall.product.pojo.param.CategoryAddNewParam;
import cn.txun.csmall.product.pojo.param.CategoryUpdateInfoParam;
import cn.txun.csmall.product.pojo.vo.CategoryListItemVO;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 处理类别业务的接口
 *
 * @author java@txun.cn
 * @version 0.0.1
 */
@Transactional
public interface ICategoryService {

    String[] ENABLE_TEXT = {"禁用", "启用"};

    /**
     * 添加类别
     *
     * @param categoryAddNewParam 新的类别数据
     */
    void addNew(CategoryAddNewParam categoryAddNewParam);

    /**
     * 根据ID删除类别
     *
     * @param id 尝试删除的类别数据的ID
     */
    void delete(Long id);

    /**
     * 修改类别数据
     *
     * @param id                      被修改的类别数据的ID
     * @param categoryUpdateInfoParam 类别的新数据
     */
    void updateInfoById(Long id, CategoryUpdateInfoParam categoryUpdateInfoParam);

    /**
     * 根据父级id查询类别列表
     * @param parentId
     * @return类别列表
     */
    List<CategoryListItemVO> listByParentId(Long parentId);

    public void setEnable(Long id) ;

    public void setDisable(Long id);


}
